//
//  DKLoginTextField.m
//  BS1
//
//  Created by 丁侃 on 16/4/26.
//  Copyright © 2016年 丁侃. All rights reserved.
//

#import "DKLoginTextField.h"
#import <objc/message.h>

@implementation DKLoginTextField

-(void)awakeFromNib
{
    //公用的属性:1.光标的颜色,2站位文字的颜色
    //设置光标的颜色
    self.tintColor = [UIColor yellowColor];
    
    //设置站位文字的颜色
    //方式一:通过attribute属性来设置
    //思路:当我们第一次遇到,那么我们是要设置站位文字的颜色,所以可以尝试着去头文件中搜索`placeholder``color`相关的字眼
    
    //通过attributedPlaceholder来实现修改站位颜色
    /*
    NSDictionary *attDic = @{
                             NSFontAttributeName:self.font,
                             NSForegroundColorAttributeName:[UIColor whiteColor]
                             
                             };
    NSAttributedString *attribute = [[NSAttributedString alloc]initWithString:self.placeholder attributes:attDic];
    self.attributedPlaceholder = attribute;
    */
    
    
    //方式三:
    //UITextFieldLabel.如何获取textField中的子控件

    /*
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        //遍历text的子控件
        for (UIView *sub in self.subviews) {
            //打印类型
            NSLog(@"%@",NSStringFromClass([sub superclass]));
            //无法使用这个UITextFieldLabel类型的控件,那么我们可以去看看能不能使用它的父控件来设置
            //UITextFieldLabel *label = (UITextFieldLabel *)sub;
            UILabel *label = (UILabel *)sub;
            label.textColor = [UIColor redColor];
        }
    });
     */
    //获取UITextField中所有的成员变量,获取textFiled中与站位文字子控件,通过KVC来赋值
    /*
    unsigned int count;
    Ivar *ivars = class_copyIvarList([UITextField class], &count);//注意这里不是获取当前类,而是要获取textField的类的成员变量
    for (NSInteger i = 0 ; i < count; i ++) {
        Ivar ivar = ivars[i];
        NSString *ivarName = [NSString stringWithUTF8String:ivar_getName(ivar)];
        NSLog(@"%@",ivarName);
    }
    */
    
    [self setValue:[UIColor blueColor] forKeyPath:@"_placeholderLabel.textColor"];
    
    
    /*
        unsigned int count;
        Ivar *ivarList = class_copyIvarList([UITextField class], &count);
        for (int i = 0; i < count; i++) {
            Ivar ivar = ivarList[i];
            NSLog(@"%s", ivar_getName(ivar));
        }
*/
    
}

//方式二:通过重写此方法来实现
//-(void)drawPlaceholderInRect:(CGRect)rect
//{
//    //是不是要讲颜色来渲染到指定的区域呢???
//    //rect是指什么?
//    NSLog(@"%@",NSStringFromCGRect(rect));
//    //通过打印发现参数rect就是我们创建额textField的尺寸大小
//    //那么我们是不是就可以指定某个区域的颜色呢??
//    
//    NSDictionary *dic = @{
//                          NSFontAttributeName:self.font,
//                          NSForegroundColorAttributeName:[UIColor whiteColor]
//                          };
//    //获取站位文字的尺寸
////    CGRect placeRect = CGRectMake(0, 5, self.dk_width, self.dk_height - 10);
//    //如何获取站位字体的高度??
//    /*
//    CGRect placeRect = CGRectMake(0, (self.dk_height - self.font.lineHeight) * 0.5, self.dk_width, self.font.lineHeight);
//    NSLog(@"%@",NSStringFromCGRect(placeRect));
//    [self.placeholder drawInRect:placeRect withAttributes:dic];
//     */
//    CGPoint point = CGPointMake(0, (self.dk_height - self.font.lineHeight) * 0.5);
//    [self.placeholder drawAtPoint:point withAttributes:dic];
//}

@end
